home *** CD-ROM | disk | FTP | other *** search
-
-
-
- RCMD C Library Procedures RCMD
-
-
-
- NNAAMMEE
- rcmd, rresvport, ruserok - routines for returning a stream
- to a remote command
-
- SSYYNNOOPPSSIISS
- rreemm == rrccmmdd((aahhoosstt,, iinnppoorrtt,, llooccuusseerr,, rreemmuusseerr,, ccmmdd,, ffdd22pp));;
- cchhaarr ****aahhoosstt;;
- iinntt iinnppoorrtt;;
- cchhaarr **llooccuusseerr,, **rreemmuusseerr,, **ccmmdd;;
- iinntt **ffdd22pp;;
-
- ss == rrrreessvvppoorrtt((ppoorrtt));;
- iinntt **ppoorrtt;;
-
- rruusseerrookk((rrhhoosstt,, ssuuppeerruusseerr,, rruusseerr,, lluusseerr));;
- cchhaarr **rrhhoosstt;;
- iinntt ssuuppeerruusseerr;;
- cchhaarr **rruusseerr,, **lluusseerr;;
-
- DDEESSCCRRIIPPTTIIOONN
- _R_c_m_d is a routine used by the super-user to execute a com-
- mand on a remote machine using an authentication scheme
- based on reserved port numbers. _R_r_e_s_v_p_o_r_t is a routine
- which returns a descriptor to a socket with an address in
- the privileged port space. _R_u_s_e_r_o_k is a routine used by
- servers to authenticate clients requesting service with
- _r_c_m_d. All three functions are present in the same file and
- are used by the _r_s_h_d(8C) server (among others).
-
- _R_c_m_d looks up the host *_a_h_o_s_t using _g_e_t_h_o_s_t_b_y_n_a_m_e(3N),
- returning -1 if the host does not exist. Otherwise *_a_h_o_s_t
- is set to the standard name of the host and a connection is
- established to a server residing at the well-known Internet
- port _i_n_p_o_r_t.
-
- If the connection succeeds, a socket in the Internet domain
- of type SOCK_STREAM is returned to the caller, and given to
- the remote command as ssttddiinn and ssttddoouutt. If _f_d_2_p is non-
- zero, then an auxiliary channel to a control process will be
- set up, and a descriptor for it will be placed in *_f_d_2_p.
- The control process will return diagnostic output from the
- command (unit 2) on this channel, and will also accept bytes
- on this channel as being UNIX signal numbers, to be for-
- warded to the process group of the command. If _f_d_2_p is 0,
- then the ssttddeerrrr (unit 2 of the remote command) will be made
- the same as the ssttddoouutt and no provision is made for sending
- arbitrary signals to the remote process, although you may be
- able to get its attention by using out-of-band data.
-
- The protocol is described in detail in _r_s_h_d(8C).
-
- The _r_r_e_s_v_p_o_r_t routine is used to obtain a socket with a
-
-
-
- Sprite v1.0 September 30, 1987 1
-
-
-
-
-
-
- RCMD C Library Procedures RCMD
-
-
-
- privileged address bound to it. This socket is suitable for
- use by _r_c_m_d and several other routines. Privileged Internet
- ports are those in the range 0 to 1023. Only the super-user
- is allowed to bind an address of this sort to a socket.
-
- _R_u_s_e_r_o_k takes a remote host's name, as returned by a
- _g_e_t_h_o_s_t_b_y_a_d_d_r(3N) routine, two user names and a flag indi-
- cating whether the local user's name is that of the super-
- user. It then checks the files /_e_t_c/_h_o_s_t_s._e_q_u_i_v and, possi-
- bly, ._r_h_o_s_t_s in the local user's home directory to see if
- the request for service is allowed. A 0 is returned if the
- machine name is listed in the ``hosts.equiv'' file, or the
- host and remote user name are found in the ``.rhosts'' file;
- otherwise _r_u_s_e_r_o_k returns -1. If the _s_u_p_e_r_u_s_e_r flag is 1,
- the checking of the ``hosts.equiv'' file is bypassed. If
- the local domain (as obtained from _g_e_t_h_o_s_t_n_a_m_e(2)) is the
- same as the remote domain, only the machine name need be
- specified.
-
- SSEEEE AALLSSOO
- rlogin(1C), rsh(1C), intro(2), rexec(3), rexecd(8C),
- rlogind(8C), rshd(8C)
-
- DDIIAAGGNNOOSSTTIICCSS
- _R_c_m_d returns a valid socket descriptor on success. It
- returns -1 on error and prints a diagnostic message on the
- standard error.
-
- _R_r_e_s_v_p_o_r_t returns a valid, bound socket descriptor on suc-
- cess. It returns -1 on error with the global value _e_r_r_n_o
- set according to the reason for failure. The error code
- EAGAIN is overloaded to mean ``All network ports in use.''
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 September 30, 1987 2
-
-
-
-